home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tk.d64 / basic keywords.c (.txt) next >
Commodore BASIC  |  2007-02-04  |  29KB  |  713 lines

  1. 5 REM ****   BASIC KEYWORDS   ****
  2. 10 REM **   BY STEVE WERKMAN   **
  3. 15 REM **   424 E. SECOND ST.  **
  4. 20 REM **  PERRYSBURG,OH 43551 **
  5. 25 REM **************************
  6. 26 REM **       REFERENCES     **
  7. 27 REM ** COMMODORE 64 PROGRAMMER'S REFERENCE GUIDE
  8. 28 REM ** COMMODORE BUSINESS MACHINES INC & HOWARD W. SAMS & CO. INC.
  9. 29 REM ** YOUR COMMODORE 64 - JOHN HEILBORN & RON TALBOTT
  10. 30 REM ** OSBORNE/MCGRAW -HILL
  11. 35 PRINT"[147]"
  12. 40 PRINTTAB(14)"[158][169]  [223][146]  [169]  [146]"
  13. 42 PRINTTAB(14)" [146]    [169][146][169]  [146]"
  14. 44 PRINTTAB(14)" [146][183][183] [146][169]    [146]"
  15. 46 PRINTTAB(14)"[223]  [146][169]     [146] "
  16. 47 PRINTTAB(17)"BASIC":PRINTTAB(13)"BASIC KEYWORDS"
  17. 48 PRINTTAB(12)"BY STEVE WERKMAN"
  18. 50 FOR I=1 TO 4000:NEXT I
  19. 80 POKE53281,1:POKE53280,14
  20. 90 K$="PRESS ANY KEY TO CONTINUE"
  21. 91 S$="SELECT NUMBER FOR EXPLANATION"
  22. 92 F$="PRESS F1 FOR NEXT MENU"
  23. 93 B$="PRESS F7 FOR PREVIOUS MENU"
  24. 95 PRINT "[147][154]"
  25. 100 PRINTTAB(5)"[144]BASIC COMMANDS. (COMMAND MODE)"
  26. 110 PRINTTAB(15)"1.- CONT[157][157][157][157][157][157][157][157]2.- LIST"
  27. 120 PRINTTAB(15)"3.- LOAD[157][157][157][157][157][157][157][157]4.- NEW[157][157][157][157][157][157][157]5.- RUN"
  28. 130 PRINTTAB(15)"6.- SAVE[157][157][157][157][157][157][157][157]7.- VERIFY"
  29. 140 PRINT""S$
  30. 145 PRINT""F$
  31. 146 GET A$:IF A$=""THEN146
  32. 150 IF A$="[133]"THEN200
  33. 151 A=VAL(A$)
  34. 152 ON A GOTO 1010,1020,1030,1040,1050,1060,1070
  35. 158 IF A<1 OR A>7 THEN 146
  36. 200 PRINTCHR$(147)
  37. 210 PRINTTAB(9)"PROGRAM CONTROLLERS"
  38. 220 PRINTTAB(12)"1.- END[157][157][157][157][157][157][157]2.- FOR..NEXT[157][157][157][157][157][157][157][157][157][157][157][157][157]3.- GOSUB..RETURN"
  39. 230 PRINTTAB(12)"4.- IF..THEN[157][157][157][157][157][157][157][157][157][157][157][157]5.- GOTO[157][157][157][157][157][157][157][157]6.- ON..GOTO"
  40. 240 PRINTTAB(12)"7.- ON GO..SUB[157][157][157][157][157][157][157][157][157][157][157][157][157][157]8.- STOP"
  41. 241 PRINTS$
  42. 242 PRINTB$
  43. 245 PRINTF$
  44. 246 GET A$:IF A$=""THEN246
  45. 249 IF A$="[133]"THEN300
  46. 250 IF A$="[136]"THEN95
  47. 251 A=VAL(A$)
  48. 252 ON A GOTO 2010,2020,2030,2040,2051,2060,2070,2080
  49. 260 IF A<1ORA>8THEN246
  50. 300 PRINTCHR$(147)
  51. 310 PRINTTAB(5)"KEYBOARD & SCREEN CONTROLLERS"
  52. 320 PRINTTAB(12)"1.- GET[157][157][157][157][157][157][157]2.- INPUT[157][157][157][157][157][157][157][157][157]3.- POS[157][157][157][157][157][157][157]4.- PRINT"
  53. 330 PRINTTAB(12)"5.- SPC[157][157][157][157][157][157][157]6.- TAB"
  54. 340 PRINT:PRINT
  55. 341 PRINTS$
  56. 342 PRINTB$
  57. 345 PRINTF$
  58. 346 GET A$:IF A$=""THEN 346
  59. 349 IF A$="[133]"THEN400
  60. 350 IF A$="[136]"THEN 200
  61. 355 A=VAL(A$)
  62. 356 ON A GOTO3010,3020,3030,3040,3050,3060
  63. 357 IF A<1ORA>6 THEN 346
  64. 400 PRINTCHR$(147)
  65. 410 PRINTTAB(10)"ARITHMETIC FUNCTIONS"
  66. 420 PRINTTAB(3)"1.- ABS       5.- EXP    9.- SGN"
  67. 425 PRINTTAB(3)"[136]2.- ATN       6.- INT    A.- SIN"
  68. 430 PRINTTAB(3)"3.- COS       7.- LOG    B.- SQR"
  69. 435 PRINTTAB(3)"4.- DEF FN    8.- RND    C.- TAN"
  70. 440 PRINTTAB(7)" D.- TI (TIME)   E.- VAL"
  71. 441 PRINTTAB(6)"SELECT NUMBER OR LETTER FOR                      EXPLANATION"
  72. 442 PRINTF$
  73. 443 PRINTB$
  74. 446 GETA$:IFA$=""THEN446
  75. 449 IFA$="[133]"THEN500
  76. 450 IF A$="[136]"THEN300
  77. 451 A=VAL(A$)
  78. 455 ON A GOTO 4010,4020,4030,4040,4050,4060,4070,4080,4090
  79. 456 IF A$="A"THEN4100
  80. 457 IF A$="B"THEN4110
  81. 458 IF A$="C"THEN4120
  82. 459 IF A$="D"THEN4130
  83. 460 IF A$="E"THEN4140
  84. 500 PRINTCHR$(147)
  85. 510 PRINTTAB(8)"FILE AND DEVICE HANDLING":PRINTTAB(15)"1.- CLOSE"
  86. 520 PRINTTAB(15)"2.- CMD":PRINTTAB(15)"3.- GET#":PRINTTAB(15)"4.- INPUT#"
  87. 530 PRINTTAB(15)"5.- OPEN":PRINTTAB(15)"6.- PRINT#"
  88. 540 PRINTTAB(15)"7.- STATUS"
  89. 541 PRINTS$
  90. 542 PRINTB$
  91. 543 PRINTF$
  92. 546 GET A$:IFA$=""THEN546
  93. 549 IF A$="[133]"THEN600
  94. 550 IF A$="[136]"THEN400
  95. 551 A=VAL(A$)
  96. 552 ON A GOTO 5010,5020,5030,5040,5050,5060,5070
  97. 560 IF A<1OR A>7THEN546
  98. 600 PRINTCHR$(147)
  99. 610 PRINTTAB(10)"ARRAY AND VARIABLE":PRINTTAB(13)"MANIPULATION":PRINTTAB(14)"1.- CLR"
  100. 620 PRINTTAB(14)"2.- DATA":PRINTTAB(14)"3.- DIM":PRINTTAB(14)"4.- FRE"
  101. 630 PRINTTAB(14)"5.- LET":PRINTTAB(14)"6.- READ":PRINTTAB(14)"7.- RESTORE"
  102. 641 PRINTS$
  103. 642 PRINTB$
  104. 643 PRINTF$
  105. 646 GET A$:IF A$=""THEN646
  106. 649 IFA$="[133]"THEN700
  107. 650 IFA$="[136]"THEN500
  108. 651 A =VAL(A$)
  109. 652 ONA GOTO 6010,6020,6030,6040,6050,6060,6070
  110. 660 IF A<1ORA>7THEN646
  111. 700 PRINTCHR$(147)
  112. 710 PRINTTAB(12)"STRING FUNCTIONS"
  113. 720 PRINTTAB(14)"1.- ASC":PRINTTAB(14)"2.- CHR$":PRINTTAB(14)"3.- LEFT$"
  114. 730 PRINTTAB(14)"4.- LEN":PRINTTAB(14)"5.- MID$":PRINTTAB(14)"6.- RIGHT$"
  115. 740 PRINTTAB(14)"7.- STR$":PRINTTAB(14)"8.- TIME$"
  116. 741 PRINTS$
  117. 742 PRINTB$
  118. 743 PRINTF$
  119. 746 GET A$:IFA$=""THEN746
  120. 749 IF A$="[133]"THEN800
  121. 750 IF A$="[136]"THEN600
  122. 751 A=VAL(A$)
  123. 752 ON A GOTO 7010,7020,7030,7040,7050,7060,7070,7080
  124. 760 IF A<1ORA>8THEN746
  125. 800 PRINTCHR$(147)
  126. 810 PRINTTAB(12)"MACHINE LANGUAGE":PRINTTAB(15)"INTERFACE"
  127. 820 PRINTTAB(14)"1.- PEEK":PRINTTAB(14)"2.- POKE"
  128. 830 PRINTTAB(14)"3.- SYS":PRINTTAB(14)"4.- USR"
  129. 841 PRINTS$
  130. 842 PRINTF$
  131. 843 PRINTB$
  132. 846 GETA$:IFA$=""THEN846
  133. 849 IF A$="[133]"THEN900
  134. 850 IF A$="[136]"THEN700
  135. 851 A=VAL(A$)
  136. 852 ON A GOTO 8010,8020,8030,8040
  137. 860 IF A<1 OR A>4THEN846
  138. 900 PRINTCHR$(147)
  139. 910 PRINTTAB(8)"MISCELLANEOUS STATEMENTS"
  140. 920 PRINTTAB(14)"1.- REM":PRINTTAB(14)"2.- WAIT"
  141. 943 PRINT""B$
  142. 944 PRINT"PRESS Q TO QUIT"
  143. 946 GETA$:IFA$=""THEN946
  144. 949 IF A$="[136]"THEN800
  145. 950 IF A$="Q"ORA$="[133]" THEN 10000
  146. 951 A=VAL(A$)
  147. 952 ON A GOTO 9010,9020
  148. 1010 PRINTCHR$(147):PRINTTAB(18)"CONT"
  149. 1011 PRINTTAB(5)"IF A PROGRAM WAS HALTED BY A 'STOP'     OR 'END' STATEMENT-"
  150. 1012 PRINTTAB(5)"OR THE RUN/STOP KEY WAS PRESSED-"
  151. 1013 PRINTTAB(5)"THE PROGRAM WILL RE-START AT THE"
  152. 1014 PRINTTAB(5)"EXACT PLACE WHERE IT LEFT OFF."
  153. 1015 PRINTTAB(5)"STOP STATEMENTS ARE USED AS A           DEBUGGING TOOL"
  154. 1017 PRINTTAB(8)K$
  155. 1018 GETA$:IFA$=""THEN1018
  156. 1019 GOTO95
  157. 1020 PRINTCHR$(147):PRINTTAB(18)"LIST"
  158. 1021 PRINTTAB(5)"'LIST' WILL LIST ALL LINES IN A          PROGRAM."
  159. 1022 PRINTTAB(5)"'LIST 100-200' WILL LIST ALL             LINES FROM 100 TO 200."
  160. 1023 PRINTTAB(5)"'LIST 100' WILL LIST ONLY                LINE 100."
  161. 1024 PRINTTAB(5)"'LIST 100-' WILL LIST ALL LINES"
  162. 1025 PRINTTAB(6)"FROM 100 TO END OF PROGRAM."
  163. 1026 PRINTTAB(5)"'LIST -100' WILL LIST ALL LINES          FROM 0 TO 100."
  164. 1027 PRINTTAB(8)K$
  165. 1028 GETA$:IF A$=""THEN1028
  166. 1029 GOTO95
  167. 1030 PRINTCHR$(147):PRINTTAB(18)"LOAD"
  168. 1031 PRINTTAB(5)"FINDS & READS PROGRAM FROM TAPE         OR DISK"
  169. 1032 PRINTTAB(5)"LOAD  (THEN RETURN)- LOADS NEXT         PROGRAM ON TAPE"
  170. 1033 PRINTTAB(5)"LOAD ";CHR$(34);"PROGRAM";CHR$(34);"-LOADS PROG. FROM         TAPE"
  171. 1034 PRINTTAB(5)"LOAD";CHR$(34)"*";CHR$(34);"-LOADS FIRST PROGRAM ON DISK"
  172. 1035 PRINTTAB(5)"LOAD";CHR$(34)"PROGRAM";CHR$(34);" -LOADS ";CHR$(34);"PROGRAM";CHR$(34);
  173. 1036 PRINT"FROM      DISK"
  174. 1037 PRINTTAB(8)K$
  175. 1038 GET A$:IFA$=""THEN1038
  176. 1039 GOTO95
  177. 1040 PRINTCHR$(147):PRINTTAB(18)"NEW"
  178. 1041 PRINTTAB(5)"THE NEW COMMAND WILL DELETE THE         PROG. IN MEMORY"
  179. 1042 PRINTTAB(5)"NEW - WILL CLEAR ALL VARIABLES."
  180. 1043 PRINTTAB(5)"NEW - SHOULD BE USED BEFORE TYPING      IN ANY NEW PROGRAM."
  181. 1044 PRINTTAB(5)"NEW CAN BE USED IN A PROGRAM BUT        WILL ERASE ALL BEFORE."
  182. 1047 PRINTTAB(8)K$
  183. 1048 GET A$:IFA$=""THEN1048
  184. 1049 GOTO95
  185. 1050 PRINTCHR$(147):PRINTTAB(18)"RUN"
  186. 1051 PRINTTAB(5)"RUN WILL START THE PROGRAM IN MEM-      ORY:CLEARS VARIABLES"
  187. 1052 PRINTTAB(5)"RUN 100 PERFORMS CLR AND STARTS AT      LINE 100."
  188. 1053 PRINTTAB(5)"RUN MAY ALSO BE USED IN PROGRAM         MODE. STARTS AT FIRST";
  189. 1054 PRINT" LINE WITH         ALL VARIABLES CLEARED."
  190. 1057 PRINTTAB(8)K$
  191. 1058 GETA$:IF A$=""THEN1058
  192. 1059 GOTO95
  193. 1060 PRINTCHR$(147):PRINTTAB(17)"SAVE"
  194. 1061 PRINTTAB(5)"THE SAVE STATEMENT WRITES A COPY OF     THE CURRENT";
  195. 1062 PRINT" PROGRAM FROM MEMORY TO      EXTERNAL DEVICE (CASSETTE OR DISK)"
  196. 1063 PRINTTAB(5)"SAVE (& RETURN) WRITES TO TAPE          WITHOUT NAME"
  197. 1064 PRINTTAB(5)"SAVE ";CHR$(34);"DOG";CHR$(34);",1 SAVES 'DOG' ON TAPE"
  198. 1065 PRINTTAB(5)"SAVE ";CHR$(34);"DOG";CHR$(34);",8 SAVES PROGRAM";
  199. 1066 PRINT" 'DOG'        ON DISK."
  200. 1067 PRINTK$
  201. 1068 GET A$:IF A$=""THEN1068
  202. 1069 GOTO95
  203. 1070 PRINTCHR$(147):PRINTTAB(16)"VERIFY"
  204. 1071 PRINTTAB(5)"COMPARES PROGRAM IN MEMORY WITH         PROG. ON DISK OR TAPE."
  205. 1072 PRINTTAB(5)"VERIFY VERIFIES NEXT PROGRAM            FOUND ON TAPE."
  206. 1073 PRINTTAB(5)"VERIFY ";CHR$(34);"DOG";CHR$(34);"  VERIFIES PROG. 'DOG'";
  207. 1074 PRINT"      ON TAPE."
  208. 1075 PRINTTAB(5)"VERIFY";CHR$(34);"CAT";CHR$(34);",8 VERIFIES PROG. 'CAT'"
  209. 1076 PRINTTAB(5)"ON DISK."
  210. 1077 PRINTTAB(8)K$
  211. 1078 GET A$:IFA$=""THEN1078
  212. 1079 GOTO95
  213. 2010 PRINTCHR$(147):PRINTTAB(18)"END"
  214. 2011 PRINTTAB(3)"ENDS EXECUTION OF CURRENT PROGRAM."
  215. 2012 PRINTTAB(3)"END & STOP STATEMENTS HALT PROGRAM      EXECUTION. YOU CAN";
  216. 2013 PRINTTAB(3)" CONTINUE BY TYPING ";
  217. 2014 PRINTTAB(3)"CONT. YOU DO NOT HAVE TO USE END OR     STOP STATEMENTS, BUT";
  218. 2015 PRINT" THESE STATEMENTS   MAKE PROGRAMS EASIER TO USE."
  219. 2016 PRINTTAB(3)"END FINISHES A PROGRAM EXECUTION AND    DISPLAYS THE READY";
  220. 2017 PRINT" MESSAGE AND GIVES    CONTROL BACK TO THE OPERATOR.":PRINTTAB(8)K$
  221. 2018 GET A$:IFA$=""THEN2018
  222. 2019 GOTO200
  223. 2020 PRINT"[147]":PRINTTAB(15)"FOR.NEXT[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]WILL REPEAT  THE";
  224. 2021 PRINT" STATEMENTS BETWEEN     THE FOR AND NEXT AS LONG AS VARIABLE"
  225. 2022 PRINTTAB(3)"IS LESS THAN OR EQUAL TO END COSTANT.   THIS STATEMENT LETS";
  226. 2023 PRINT" YOU USE A VARI-     ABLE AS A COUNTER. YOU MUST SPECIFY     THE ";
  227. 2024 PRINT"NAME OF THE VARIABLE, THE START-    ING VALUE, THE END VALUE AND STEP."
  228. 2025 PRINTTAB(3)"IF STEP IS OMITTED A STEP OF 1 IS       ASSUMED.EXAMPLE"
  229. 2026 PRINTTAB(10)"10 FOR A=1 TO 10[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]20 NEXT A"
  230. 2027 PRINTTAB(8)K$
  231. 2028 GET A$:IFA$=""THEN2028
  232. 2029 GOTO200
  233. 2030 PRINT"[147]":PRINTTAB(12)"GOSUB...RETURN"
  234. 2031 PRINTTAB(3)"TRANSFERS EXECUTION TO THE LINE INDI-   CATED AFTER GOSUB.";
  235. 2032 PRINT" UPON REACHING A      RETURN STATMENT IT TRANSFERS BACK TO    NEXT";
  236. 2033 PRINT" LINE AFTER THE GOSUB STATEMENT."
  237. 2034 PRINTTAB(3)"THE INDICATED LINE IS USUALY A SUB-     ROUTINE ENTRY POINT."
  238. 2035 PRINTTAB(3)"GOSUB IS SIMILAR TO GOTO, EXCEPT THAT   WHEN RETURN STATEMENT";
  239. 2036 PRINT" IS REACHED,       PROGRAM GOES BACK TO LINE AFTER GOSUB"
  240. 2037 PRINTTAB(8)K$
  241. 2038 GETA$:IFA$=""THEN2038
  242. 2039 GOTO200
  243. 2040 PRINT"[147]":PRINTTAB(15)"IF...THEN[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]ALLOWS BASIC";
  244. 2041 PRINT" PROGRAM TO EXECUTE LINES   OUT OF NUMERICAL ORDER."
  245. 2042 PRINTTAB(3)"IF AN EXPRESSION IS TRUE,THEN EXECUTE   STATEMENT(S)";
  246. 2043 PRINT" (OR GOTO LINE);OTHERWISE   EXECUTE NEXT LINE."
  247. 2044 PRINTTAB(3)"IF SPECIFIED CONDITION IS TRUE, THEN    THE STATEMENT(S)";
  248. 2045 PRINT" FOLLOWING 'THEN' ARE   EXECUTED. IF CONDITION IS FALSE, CON-";
  249. 2046 PRINTTAB(3)"   TROL PASSES TO THE NEXT LINE AND        STATEMENT(S)";
  250. 2047 PRINT"FOLLOWING 'THEN' ARE NOT    EXECUTED.":PRINTTAB(13)"10 IF A=1 THEN 50"
  251. 2048 PRINTTAB(8)K$
  252. 2049 GETA$:IFA$=""THEN2049
  253. 2050 GOTO200
  254. 2051 PRINT"[147]":PRINTTAB(18)"GOTO[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]CAN BE USED TO STOP A PROGRAM";
  255. 2052 PRINT" SUCH AS":PRINTTAB(15)"50 GOTO 50":PRINTTAB(3)"GOTO WILL";
  256. 2053 PRINT" UNCONDITIONALLY TRANSFER      EXECUTION TO LINE INDICATED."
  257. 2054 PRINTTAB(3)"IT ALLOWS A PROGRAM TO EXECUTE LINES    OUT OF NUMERICAL ORDER."
  258. 2055 PRINTTAB(10)"EXAMPLE: 100 GOTO 300
  259. 2057 [153][163]8)K$
  260. 2058 [161] A$:[139]A$[178]""[167]2058
  261. 2059 [137]200
  262. 2060 [153]"LOAD":[153][163]16)"ON..GOTO":[153][163]3)"CAUSES AN UNCONDITIONAL BRANCH";
  263. 2061 [153]" TO ONE   OF SEVERAL POINTS IN PROGRAM, DEPEND-   ING ON THE VALUE";
  264. 2062 [153]" OF A VARIABLE.":[153][163]3)"FOR EXAMPLE- IF VALUE IS 2, ON..GOTO";
  265. 2063 [153]"    WILL GOTO 2 ND LINE IN THE LIST."
  266. 2064 [153][163]3)"IF VALUE IF VARIABLE IS 0 OR > NUMBER   OF ITEMS IN LIST";
  267. 2065 [153]", THE PROGRAM IG-       NORES THE STATEMENT AND GOES TO NEXT"
  268. 2066 [153][163]3)"LINE."
  269. 2067 [153][163]8)K$
  270. 2068 [161] A$:[139]A$[178]""[167]2068
  271. 2069 [137] 200
  272. 2070 [153]"LOAD"::[153][163]16)"ON..GOSUB":[153][163]3)"THE ON..GOSUB STATEMENT ";
  273. 2071 [153]"HAS THE SAME    FORMAT AS ON..GOTO. DEPENDING ON THE    VALUE OF ";
  274. 2072 [153]"A VARIABLE THE PROGRAM         BRANCHES TO SUBROUTINE.":[153][163]8)"10 ";
  275. 2073 [153]"ON A GOSUB 100,200,300":[153][163]3)"IF A = 1 PROGRAM BRANCHES TO 100,";
  276. 2074 [153]"IF     A = 2 BRANCH TO 200 ETC."
  277. 2075 [153][163]3)"ON..GOSUB USUALLY IS EXECUTED IN        PROGRAM MODE, ";
  278. 2076 [153]"HOWEVER, IT CAN BE USED   IN IMMEDIATE MODE IF THERE ARE LINE     #'S";
  279. 2077 [153]" TO BRANCH TO IN PROGRAM.":[153]:[153][163]8)K$
  280. 2078 [161]A$:[139] A$[178]""[167]2078
  281. 2079 [137]200
  282. 2080 [153]"LOAD":[153][163]18)"STOP":[153][163]3)"THIS STATEMENT CAUSES PROGRAM TO "
  283. 2081 [153][163]3)"STOP EXECUTION AND RETURN CONTROL TO    BASIC."
  284. 2083 [153][163]3)"STOP IS A GOOD TOOL FOR DE-BUGGING      A PROGRAM. IT CAN ";
  285. 2084 [153]"BE USED TO RUN A      PORTION OF A PROGRAM TO TEST TO STOP."
  286. 2087 [153][163]8)K$
  287. 2088 [161] A$:[139]A$[178]""[167]2088
  288. 2089 [137]200
  289. 3010 [153]"LOAD":[153][163]19)"GETCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDTHIS STATEMENT RECEIVES";
  290. 3011 [153]" SINGLE CHAR-    ACTERS AS INPUT FROM THE KEYBOARD.":[153][163]2)"CAN";
  291. 3012 [153]" BE EXECUTED FROM PROGRAM MODE ONLY":[153][163]2)"WHEN GET IS EXECUTED";
  292. 3013 [153]" VARIABLE IS ASS-   IGNED '0'- 0R NULL IF A STRING. PREV.   VALUE IS";
  293. 3014 [153]" LOST. THEN 'GET' LOOKS AT      NEXT CHARACTER FROM KEYBOARD BUFFER ";
  294. 3015 [153]"    AND ASSIGNS IT TO THE VARIABLE. IF      BUFFER IS EMPTY VARIABLE";
  295. 3016 [153]" REMAINS '0'    OR NULL VALUE."
  296. 3017 [153][163]8)K$
  297. 3018 [161]A$:[139]A$[178]""[167]3018
  298. 3019 [137]300
  299. 3020 [153]"LOAD":[153][163]17)"INPUTCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDTHIS STATEMENT ALLOWS ";
  300. 3021 [153]"OPERATOR TO       FEED INFORMATION TO THE COMPUTER.":[153][163]3)"USING ";
  301. 3022 [153]"QUOTE MARKS AFTER INPUT ALLOWS    TEXT TO BE PRINTED BEFORE ? MARK."
  302. 3023 [153][163]3)"PROG. HALTS AND WAITS FOR ANSWER TO     BE TYPED IN AND-RETURN-";
  303. 3024 [153]" PRESSED.":[153][163]3)"TYPE IN AS MANY INPUTS AS NEEDED SEP-   ARATED BY";
  304. 3025 [153]" COMMAS.":[153][163]3)"IF TOO MUCH DATA IS PUT IN, '?EXTRA     IGNORED' ";
  305. 3026 [153]"WILL BE DISPLAYED. IF NOT      ENOUGH IS PUT IN '??' APPEARS."
  306. 3027 [153][163]8)K$
  307. 3028 [161]A$:[139]A$[178]""[167]3028
  308. 3029 [137]300
  309. 3030 [153]"LOAD":[153][163]19)"POSCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDTO USE THE TAB FUNCTION ON ";
  310. 3031 [153]"THE          PRINTER YOU WILL NEED THE POS INST-     RUCTION WHICH IS ";
  311. 3032 [153]"REPRESENTED BY         CHR$(16).":[153][163]3)"TO PRINT AN * AT TAB(10) ";
  312. 3033 [153]" USE":[153]"PRINT#1;CHR$(16);CHR$(49);CHR$(48);"[170][199](34);"*";[199](34)
  313. 3034 [153][163]3)"CHR$(49)=1 AND CHR$(48)=0"
  314. 3037 [153][163]8)K$
  315. 3038 [161] A$:[139]A$[178]""[167] 3038
  316. 3039 [137] 300
  317. 3040 [153]"LOAD":[153][163]17)"PRINTCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDTHE PRINT STATEMENT ";
  318. 3041 [153]"CAUSES DATA TO BE   DISPLAYED. THE FIRST DATA ITEM IS"
  319. 3042 [153][163]3)"DISPLAYED AT THE CURRENT CURSOR POSI-   TION.":[153][163]3)"IF THE ";
  320. 3043 [153]"ITEM IS FOLLOWED BY A COMMA,     THE NEXT ITEM IS PRINTED AT 1ST TAB "
  321. 3044 [153][163]3)"POS 11 & THE NEXT AT POS 21 ETC. A      SEMICOLON CAUSES ITEM TO BE
  322. 3045 PRINT"   PRINTED IN   FIRST AVAILABLE COLUMN.":PRINTTAB(3)"NO COMMA OR ";
  323. 3046 PRINT"SEMICOLON CAUSES A CAR-     RIAGE RETURN TO FOLLOW LAST ITEM."
  324. 3047 PRINTTAB(8)K$
  325. 3048 GETA$:IF A$=""THEN 3048
  326. 3049 GOTO 300
  327. 3050 PRINT"[147]":PRINTTAB(19)"SPC[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]AIDS IN FORMATTING ";
  328. 3051 PRINT"TO ALLOW PRINT       STATEMENTS TO PRINT MESSAGES IN DIFF-   ERENT POS";
  329. 3052 PRINT"ITIONS ON A LINE.":PRINTTAB(3)"SPC IS A SPACE OVER FUNCTION. AFTER     SPC";
  330. 3053 PRINT", IN PARENTHESES, INCLUDE THE NUM-   BER OF POSITIONS YOU WISH TO ";
  331. 3054 PRINTTAB(3)"SPACE      OVER.":PRINTTAB(12)"20 ? SPC(10)";CHR$(34)"TITLE";CHR$(34)
  332. 3055 PRINTTAB(3)"THE ABOVE WILL PRINT THE WORD TITLE     BEGINNING AT SPACE 10.
  333. 3057 [153][163]8)K$
  334. 3058 [161] A$:[139] A$[178]""[167]3058
  335. 3059 [137] 300
  336. 3060 [153]"LOAD":[153][163]19)"TABCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDTHIS FUNCTION CAN BE COM";
  337. 3061 [153]"PARED WITH      TAB ON A TYPEWRITER."
  338. 3062 [153][163]3)"BEGINNING WITH COLUMN 0 YOU CAN CALC-   ULATE THE COLUMN YOU ";
  339. 3063 [153]"WISH TO HAVE       PRINT STATEMENT BEGIN IT'S DISPLAY."
  340. 3064 [153][163]7)"30 PRINT TAB(10)";[199](34)[170]"NAME"[170][199](34)
  341. 3065 [153][163]3)"MOVES TO COLUMN 10 BEFORE PRINTING      'NAME'."
  342. 3067 [153][163]8)K$
  343. 3068 [161] A$:[139] A$[178]""[167] 3068
  344. 3069 [137] 300
  345. 4010 [153]"LOAD":[153][163]18)"ABSCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDABS(X)=X IF X IS POSITIVE OR 0."
  346. 4011 [153][163]3)"ABS(X)=-X IF X IS NEGATIVE."
  347. 4012 [153][163]3)"THE ABSOLUTE VALUE OF A NUMBER IS       RETURNED WHICH ";
  348. 4013 [153]"IS IT'S VALUE WITHOUT    A SIGN."
  349. 4014 [153][163]3)"THE ABSOLUTE VALUE OF A NEGATIVE NUM-   BER IS THAT NUMBER ";
  350. 4015 [153] "MULTIPLIED BY -1."
  351. 4016 [153][163]14)"20 X=ABS(B)CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD20 PRINT ABS(B*J)"
  352. 4017 [153][163]8)K$
  353. 4018 [161] A$:[139] A$[178]""[167] 4018
  354. 4019 [137] 400
  355. 4020 [153]"LOAD":[153][163]18)"ATN":[153][163]3)"ATN(X) RETURNS THE ARCTANGENT OF X."
  356. 4021 [153][163]3)"THE ARCTANGENT OF X IS THE ANGLE        WHOSE TANGENT EQUALS X.";
  357. 4022 [153]" THE ANGLE IS    RETURNED IN RADIANS.":[153][163]3)"TO COMPUTE ";
  358. 4023 [153]"THE ARCTANGENTS EXPRESSED    IN DEGRESS, USE THIS FUNCTION."
  359. 4024 [153][163]10)"180*ATN(X)*(null)"
  360. 4027 [153][163]8)K$
  361. 4028 [161] A$:[139]A$[178]""[167]4028
  362. 4029 [137] 400
  363. 4030 [153]"LOAD":[153][163]18)"COS"
  364. 4031 [153][163]3)"COS(X) CALCULATES THE COSINE OF X       WHERE THE NUMBER X ";
  365. 4032 [153]"IS THE ANGLE IN      RADIANS."
  366. 4033 [153][163]8)"10 PRINT COS(X*(null)/180)"
  367. 4034 [153][163]5)"(WHERE X IS STATED IN DEGREES)"
  368. 4037 [153][163]8)""K$
  369. 4038 [161] A$:[139]A$[178]""[167]4038
  370. 4039 [137] 400
  371. 4040 [153]"LOAD":[153][163]17)"DEF FN"
  372. 4041 [153][163]3)"SETS UP A USER DEFINED FUNCTION THAT    CAN BE USED ";
  373. 4042 [153]"LATER IN THE PROGRAM.":[153][163]3)"THE FUNCTION CAN BE A ";
  374. 4043 [153]"MATHEMATICAL      FORMULA THAT IS USED SEVERAL TIMES IN   A ";
  375. 4044 [153]"PROGRAM. ":[153][163]3)"THE FORMULA IS STATED ONCE AND THEN     USED ";
  376. 4045 [153]"AS A FUNCTION NAME.":[153][163]12)"10 DEF FN A(X)=X+7"
  377. 4046 [153][163]12)"20 PRINT FN(4)":[153][163]8)"(RESULTS IN 11 WHEN RUN)"
  378. 4047 [153][163]8)""K$
  379. 4048 [161]A$:[139] A$[178]""[167]4048
  380. 4049 [137] 400
  381. 4050 [153]"LOAD":[153][163]18)"EXP"
  382. 4051 [153][163]3)"EXP(X) CALCULATES THE VALUE OF THE      CONSTANT ";
  383. 4052 [153] "E=2.718289 TO THE X POWER"
  384. 4053 [153][163]12)"10 PRINT EXP(1)
  385. 4054 PRINTTAB(10)"(RETURNS 2.718289)
  386. 4055 [153][163]3)"A VALUE GREATER THAN 88.0296919         CAUSES AN OVERFLOW";
  387. 4057 [153][163]8)K$
  388. 4058 [161] A$:[139]A$[178]""[167]4058
  389. 4059 [137] 400
  390. 4060 [153]"LOAD":[153][163]18)"INT":[153][163]3)"RETURNS THE INTEGER PORTION OF A NUM-"
  391. 4061 [153][163]3)"ONBER. IT WILL ROUND TO THE NEXT LOWER    NUMBER."
  392. 4062 [153][163]3)"FOR POSITIVE NUMBERS, INT DROPS THE     FRACTIONAL PORTION ";
  393. 4063 [153]"OF THE NUMBER        WITHOUT ROUNDING.":[153][163]3)"FOR NEGATIVE ";
  394. 4064 [153]"NUMBERS, INT DROPS THE     FRACTIONAL PORTION OF THE NUMBER AND ";
  395. 4065 [153]"   ADDS 1."
  396. 4067 [153][163]8)K$
  397. 4068 [161]A$:[139]A$[178]""[167] 4068
  398. 4069 [137] 400
  399. 4070 [153]"LOAD":[153][163]18)"LOG"
  400. 4071 [153][163]3)"LOG(X) RETURNS THE NATURAL LOG TO THE   BASE E. THE VALUE ";
  401. 4072 [153]"OF E=2.71828183"
  402. 4073 [153][163]3)"IF X=0 THEN AN ILLEGAL QUATITY ERROR    MESSAGE IS DISPLAYED."
  403. 4077 [153][163]8)K$
  404. 4078 [161] A$:[139] A$[178]""[167]4078
  405. 4079 [137] 400
  406. 4080 [153]"LOAD":[153][163]18)"RND":[153][163]3)"RND(X) GENERATES AND RETURNS ";
  407. 4081 [153]"RANDOM     NUMBER 0.000000000 TO .999999999        (EQUAL TO OR > 0";
  408. 4082 [153]" AND <1.)":[153][163]3)"INT(RND(1)*(N)+1) GENERATES WHOLE"
  409. 4083 [153][163]3)"NUMBERS BETWEEN 1 AND N. ";
  410. 4084 [153]"N IS UPPER     LIMIT OF THE DESIRED NUMBERS."
  411. 4087 [153][163]8)K$
  412. 4088 [161]A$:[139] A$[178]""[167]4088
  413. 4089 [137]400
  414. 4090 [153]"LOAD":[153][163]18)"SGN":[153][163]3)"DETERMINES WHETHER A NUMBER ";
  415. 4091 [153]"IS POSI-    TIVE, NEGATIVE, OR ZERO."
  416. 4092 [153][163]3)"SGN(X) FUNCTION RETURNS (null)1 IF A NUM-    BER IS POSITIVE ";
  417. 4093 [153]"OR NOT ZERO, 0 IF THE   NUMBER IS 0, OR -1 IF THE NUMBER IS "
  418. 4094 [153][163]3)"NEGATIVE."
  419. 4097 [153][163]8)K$
  420. 4098 [161] A$:[139]A$[178]""[167]4098
  421. 4099 [137] 400
  422. 4100 [153]"LOAD":[153][163]18)"SIN":[153][163]3)"SIN(X) RETURNS THE SINE OF THE ";
  423. 4101 [153]"ANGLE    X WHICH IS EXPRESSED IN RADIANS."
  424. 4102 [153][163]12)"PRINT SIN(90*(null)/180)"
  425. 4103 [153][163]6)"(DISPLAYS SINE OF 90 DEGREES.)
  426. 4107 PRINTTAB(8)K$
  427. 4108 GETA$:IFA$=""THEN4108
  428. 4109 GOTO 400
  429. 4110 PRINT"[147]":PRINTTAB(18)"SQR":PRINTTAB(3)"SQR(X) RETURNS THE SQUARE ";
  430. 4111 PRINT"ROOT OF X     WHERE X IS A POSITIVE NUMBER."
  431. 4112 PRINTTAB(3)"IF X=NEGATIVE NUMBER AN ERROR MESSAGE   IS RETURNED."
  432. 4113 PRINTTAB(14)"10 B=SQR(9)":PRINTTAB(14)"20 PRINT B"
  433. 4114 PRINTTAB(7)"(RESULTS IN DISPLAY OF 3)
  434. 4117 [153][163]8)K$
  435. 4118 [161]A$:[139]A$[178]""[167]4118
  436. 4119 [137]400
  437. 4120 [153]"LOAD":[153][163]18)"TAN"
  438. 4121 [153][163]3)"TAN(X) RETURNS THE TANGENT OF THE       ANGLE X WHICH ";
  439. 4122 [153]"IS EXPRESSED IN           RADIANS."
  440. 4123 [153][163]12)"10 C=TAN(45*(null)/180)"
  441. 4124 [153][163]12)"20 PRINT C"
  442. 4125 [153][163]4)"(RETURNS TANGENT OF 45 DEGREE ANGLE)"
  443. 4127 [153][163]8)K$
  444. 4128 [161] A$:[139] A$[178]""[167]4128
  445. 4129 [137] 400
  446. 4130 [153]"LOAD":[153][163]14)"TI -(TIME)"
  447. 4131 [153][163]3)"RETURNS NUMBER OF JIFFIES SINCE THE     CURRENT START UP";
  448. 4132 [153]" OR RESET.":[153][163]3)"TI$ IS THE TIME OF DAY STRING."
  449. 4133 [153][163]13)"TI$="[199](34)[170]"000000"[170][199](34)
  450. 4137 [153][163]8)K$
  451. 4138 [161]A$:[139]A$[178]""[167]4138
  452. 4139 [137] 400
  453. 4140 [153]"LOAD":[153][163]18)"VAL":[153][163]3)"VAL(X$) RETURNS THE NUMERICAL ";
  454. 4141 [153]"EQUIV-    ALENT OF THE STRING X$."
  455. 4142 [153][163]3)"THE NUMBER MAY BE USED IN ARITHMETIC    CALCULATIONS."
  456. 4143 [153][163]3)"VAL FIRST DISCARDS ANY LEADING          BLANKS. IF THE ";
  457. 4144 [153]"FIRST NON BLANK CHAR-    ACTER IS NOT A DIGIT, VAL RETURNS A     0."
  458. 4145 [153][163]3)"IF FIRST NON BLANK IS A DIGIT, VAL      CONVERTS ";
  459. 4146 [153]"THE STRING INTO REAL NUM-      BERS."
  460. 4147 [153][163]8)K$
  461. 4148 [161]A$:[139]A$[178]""[167]4148
  462. 4149 [137] 400
  463. 5010 [153]"LOAD":[153][163]16)"CLOSE":[153][163]3)"AFTER FILE ACCESS HAS BEEN ";
  464. 5011 [153]"COMPLETED,   CLOSE STATEMENT SHUTS OFF THE DATA      FILE."
  465. 5012 [153][163]3)"AN OPEN CHANNEL TO DEVICE (D-DR/PRTR)   SHOULD BE CLOSED ";
  466. 5013 [153]"WHEN ACCESS IS COMP-   LETED.":[153][163]3)"THE FILE NUMBER CLOSED ";
  467. 5014 [153]"SHOULD BE THE    SAME AS NUMBER OPENED.":[153][163]12)"10 PRINT#4:";
  468. 5015 [153]"CLOSE4":[153][163]4)"(THIS CLOSES CHANNEL TO PRINTER)"
  469. 5017 [153][163]8)K$
  470. 5018 [161]A$:[139]A$[178]""[167]5018
  471. 5019 [137]500
  472. 5020 [153]"LOAD":[153][163]18)"CMD":[153][163]3)"THIS STATEMENT CONVERTS PRIMARY DEV-"
  473. 5021 [153][163]3)"ICE FROM MONITOR TO DEVICE SPECIFIED."
  474. 5022 [153][163]3)"THE FILE NUMBER MUST BE SPECIFIED IN    AN OPEN STATEMENT."
  475. 5023 [153][163]3)"WHEN CMD IS IN EFFECT, PRINT STATE-     MENTS AND LIST COMMAND ";
  476. 5024 [153]"WILL NOT DIS-    PLAY ON THE SCREEN.":[153][163]3)"CMD CAN BE ";
  477. 5025 [153]"USED IN DIRECT PROGRAM       MODE.":[153][163]11)"OPEN4,4:CMD4:LIST"
  478. 5026 [153][163]3)"(PRINTS PROGRAM LISTING ON PRINTER)"
  479. 5027 [153][163]8)"ON"K$
  480. 5028 [161]A$:[139] A$[178]""[167]5028
  481. 5029 [137] 500
  482. 5030 [153]"LOAD":[153][163]18)"GET#":[153][163]3)"THIS STATEMENT 'GETS' A SINGLE";
  483. 5031 [153]" CHAR-    ACTER FROM AN EXTERNAL STORAGE DEV-     ICE. THIS CHARACTER ";
  484. 5032 [153]"IS ASSIGNED TO      VARIABLE.":[153][163]3)"THE FILE NUMBER USED TO";
  485. 5033 [153]" IDENTIFY THE    EXTERNAL DEVICE MUST HAVE B";
  486. 5034 [153]"EEN PROP-    ERLY OPENED WITH AN OPEN STATEMENT."
  487. 5035 [153][163]10)"20 OPEN 1,3:GET#1,A$"
  488. 5036 [153][163]3)"GET# MUST BE USED IN PROGRAM MODE       ONLY."
  489. 5037 [153][163]8)K$
  490. 5038 [161]A$:[139]A$[178]""[167]5038
  491. 5039 [137]500
  492. 5040 [153]"LOAD":[153][163]16)"INPUT#":[153][163]3)"THIS STATEMENT INPUTS DATA FROM AN"
  493. 5041 [153][163]3)"EXTERNAL DEVICE AND ASSIGNS DATA        TO VARIABLES."
  494. 5042 [153][163]3)"INPUT AND INPUT# WORK IDENTICALLY       EXCEPT INPUT# RECEIVES ";
  495. 5043 [153]"ITS INPUT FROM   A FILE."
  496. 5044 [153][163]3)"INPUT# MUST BE USED IN PROGRAM MODE     ONLY."
  497. 5047 [153][163]8)K$
  498. 5048 [161]A$:[139] A$[178]""[167]5048
  499. 5049 [137]500
  500. 5050 [153]"LOAD":[153][163]18)"OPEN":[153][163]3)"THIS STATEMENT OPENS A FILE AND MAKES"
  501. 5051 [153][163]3)"ONTHE ASSIGNED DEVICE READY TO GIVE OR    RECEIVE ";
  502. 5052 [153]"DATA.":[153][163]3)"OPEN WITH NO DEVICE NO. SELECTS TAPE    UNIT."
  503. 5053 [153][163]2)"OPEN [FILE],[DEV.],[SEC ADD],["[199](34)[170]"NAME"[199](34)[170]"]"
  504. 5054 [153][163]3)"SECONDARY ADD= 0 INDICATES READ ONLY":[153][163]16)"= 1 INDICATES";
  505. 5055 [153]" OPENED TO                     WRITE":[153][163]16)"= 2 INDICATES WRITE WITH"
  506. 5056 [153][163]20)"ONEND OF TAPE MARK."
  507. 5057 [153][163]8)K$
  508. 5058 [161] A$:[139]A$[178]""[167]5058
  509. 5059 [137]500
  510. 5060 [153]"LOAD":[153][163]16)"PRINT#":[153][163]3)"THE PRINT EXTERNAL STATEMENT OUTPUTS"
  511. 5061 [153][163]3)"ONE OR MORE DATA ITEMS TO AN EXTERNAL"
  512. 5062 [153][163]3)"ONDEVICE, SUCH AS THE DISK DRIVE OR       PRINTER."
  513. 5063 [153][163]3)"THE OUTPUT GOES TO THE DEVICE NUMBER    USED IN THE OPEN ";
  514. 5064 [153]"STATEMENT."
  515. 5067 [153][163]8)K$
  516. 5068 [161]A$:[139]A$[178]""[167]5068
  517. 5069 [137]500
  518. 5070 [153]"LOAD":[153][163]16)"STATUS":[153][163]3)"THIS VARIABLE INDICATES THE STATUS"
  519. 5071 [153][163]3)"OF THE EXTERNAL DEVICES CONNECTED TO    YOUR 64."
  520. 5072 [153][163]3)"ST VALUE OF 64 INDICATES END OF FILE    FOR TAPE AND DISK DRIVE."
  521. 5073 [153][163]3)"ST VALUE OF -128 MEANS END OF TAPE      ENCOUNTERED OR DISK";
  522. 5074 [153]" DRIVE NOT PRESENT":[153][163]3)"STATUS IS THE SYSTEM DEFINED ";
  523. 5075 [153]"VARIABLE   INTO WHICH THE KERNAL PUTS STATUS OF    I/O OPERATIONS.";
  524. 5076 [153]" SEE PROG. REF. GUIDE    FOR TABLE OF STATUS CODES."
  525. 5077 [153][163]8)K$
  526. 5078 [161]A$:[139]A$[178]""[167]5078
  527. 5079 [137]500
  528. 6010 [153]"LOAD":[153][163]18)"CLR":[153][163]3)"THIS STATEMENT ERASES FROM ";
  529. 6011 [153]"MEMORY ALL   VARIABLES, ARRAYS, GOSUB ADDRESSES,     FOR...NEXT LOOPS,";
  530. 6012 [153]" USER DEFINED FUNCT-   IONS ";
  531. 6013 [153]"AND FILES.":[153][163]3)"ANY BASIC PROGRAM IN MEMORY IS NOT     ";
  532. 6014 [153]" AFFECTED.":[153][163]3)"THIS STATEMENT WILL ALSO UNDIMENSION ";
  533. 6015 [153]"   ALL ARRAYS. ARRAY SPACE IN MEMORY IS    RELEASED."
  534. 6017 [153][163]8)K$
  535. 6018 [161]A$:[139]A$[178]""[167]6018
  536. 6019 [137]600
  537. 6020 [153]"LOAD":[153][163]17)"DATA":[153][163]3)"THIS STATEMENT DECLARES CONSTANTS"
  538. 6021 [153]"   THAT ARE ASSIGNED TO VARIABLES BY A     READ STATEMENT."
  539. 6022 [153][163]3)"DATA STATEMENTS MAY BE PLACED ANY-      WHERE IN A PROGRAM";
  540. 6023 [153]" AND MAY CONTAIN      EITHER NUMERIC OR STRING CONSTANTS."
  541. 6024 [153][163]3)"BLANKS, COMMAS, COLONS, & GRAPHIC       CHARACTERS ARE ";
  542. 6025 [153]"IGNORED UNLESS THE       STRING IS ENCLOSED IN QUOTES."
  543. 6027 [153][163]8)K$
  544. 6028 [161]A$:[139]A$[178]""[167]6028
  545. 6029 [137]600
  546. 6030 [153]"LOAD":[153][163]18)"DIM":[153][163]3)"THE DIMENSION STATEMENT ALLOCATES"
  547. 6031 [153][163]3)"SPACE IN MEMORY FOR ARRAY VARIABLES.    ARRAYS WITH MORE ";
  548. 6032 [153]"THAN 11 ELEMENTS       MUST BE DIMENSIONED IN A DIM STATE-     MENT."
  549. 6033 [153][163]6)"10 DIM A(15),A$(30),CD%(5,5)"
  550. 6034 [153][163]3)"THE LOWEST ELEMENT IN AN ARRAY IS       ZERO. DIM A(5) ";
  551. 6035 [153]"DIMENSIONS VARIABLE      WITH 6 ELEMENTS.(ZERO IS 1 ELEM.)
  552. 6037 PRINTTAB(8)K$
  553. 6038 GETA$:IFA$=""THEN6038
  554. 6039 GOTO600
  555. 6040 PRINT"[147]":PRINTTAB(18)"FRE":PRINTTAB(3)"THIS FUNCTION TELLS YOU HOW MUCH RAM"
  556. 6041 PRINT"   IS AVAILABLE FOR A PROGRAM. IF A        PROGRAM USES MORE SPACE ";
  557. 6042 PRINT"THAN AVAIL-     ABLE, 'OUT OF MEMORY' ERROR WILL        APPEAR."
  558. 6043 PRINTTAB(3)"THIS FUNCTION IS NORMALLY USED IN AN    IMMEDIATE MODE ";
  559. 6044 PRINT"STATEMENT.":PRINTTAB(9)"? FRE(0)-(FRE(0)<0)*65536"
  560. 6045 PRINTTAB(3)"(THE ABOVE TELLS YOU THE CURRENT        AVAILABLE RAM)"
  561. 6047 PRINTTAB(8)K$
  562. 6048 GETA$:IFA$=""THEN6048
  563. 6049 GOTO600
  564. 6050 PRINT"[147]":PRINTTAB(18)"LET":PRINTTAB(3)"THIS STATEMENT IS USED TO ASSIGN A"
  565. 6051 PRINTTAB(3)"NUMBER TO A VARIABLE.":PRINTTAB(3)"THE WORD LET IS OPTIONAL ";
  566. 6052 PRINT"AND IS":PRINTTAB(3)"SELDOM USED AS IT USES MEMORY UNNEC-    ESSARILY."
  567. 6053 PRINTTAB(12)"10 LET X=16":PRINTTAB(15)"OR":PRINTTAB(12)"10 X=16"
  568. 6057 PRINTTAB(8)K$
  569. 6058 GETA$:IFA$=""THEN6058
  570. 6059 GOTO600
  571. 6060 PRINT"[147]":PRINTTAB(17)"READ":PRINTTAB(3)"THIS STATEMENT CAUSES NAMES FROM ";
  572. 6061 PRINT"CON-   STANTS IN DATA STATEMENTS TO BE ASS-    IGNED TO VARIABLES."
  573. 6062 PRINTTAB(3)"WHEN READ IS LOOKING FOR A NUMBER AND   A STRING IS READ";
  574. 6063 PRINT" INSTEAD OF A NUMBER,   A TYPE MISMATCH ERROR APPEARS."
  575. 6064 PRINTTAB(3)"THERE CAN BE MORE DATA ITEMS THAN       READ STATEMENTS,";
  576. 6065 PRINT" BUT TOO FEW ITEMS      WILL RESULT IN -'?OUT OF DATA ERROR.'"
  577. 6067 PRINTTAB(8)K$
  578. 6068 GETA$:IFA$=""THEN6068
  579. 6069 GOTO600
  580. 6070 PRINT"[147]":PRINTTAB(17)"RESTORE":PRINTTAB(3)"THIS STATEMENT RESETS THE POINTER TO"
  581. 6071 PRINTTAB(3)"THE DATA CONSTANT TO BE READ.":PRINTTAB(3)"WHEN USED IN A PROGRAM ";
  582. 6072 PRINT"IT ALLOWS THE    DATA STATEMENTS TO BE RE-READ."
  583. 6073 PRINTTAB(3)"RESTORE IS USED BY ITSELF IN A LINE     IN IMMEDIATE OR ";
  584. 6074 PRINT"PROGRAM MODE.":PRINTTAB(15)"110 RESTORE"
  585. 6077 PRINTTAB(8)K$
  586. 6078 GETA$:IFA$=""THEN6078
  587. 6079 GOTO 600
  588. 7010 PRINT"[147]":PRINTTAB(16)"ASC":PRINTTAB(3)"THIS NUMERIC FUNCTION WILL RETURN"
  589. 7011 PRINTTAB(3)"A NUMBER WHICH CORRESPONDS TO ";
  590. 7012 PRINTTAB(3)"COMMOD-   ORE ASCII VALUE OF THE FIRST CHAR-      ACTER ";
  591. 7013 PRINT"IN A STRING.":PRINTTAB(3)"EXAMPLE: 20 PRINT ASC("CHR$(34);"Z"CHR$(34);")"
  592. 7014 PRINTTAB(12)"30 ? ASC("CHR$(34);"DOLL"CHR$(34);")":PRINTTAB(12)"40 A=ASC(A$)
  593. 7015 [153][163]3)"PRINT ASC("[199](34);"A"[199](34);") CLOSE(RETURNS 65)"
  594. 7017 [153][163]8)K$
  595. 7018 [161]A$:[139]A$[178]""[167]7018
  596. 7019 [137]700
  597. 7020 [153]"LOAD":[153][163]16)"CHR$":[153][163]3)"RETURNS THE STRING REPRESENT";
  598. 7021 [153]"ATION       OF ASCII CODE."
  599. 7022 [153]"   USE CHR$(NNN) (WHERE NNN IS ASCII NO.   FROM 0 TO 255)"
  600. 7023 [153][163]6)"10 PRINT CHR$(34);"[199](34);"BABY"[199](34);"CHR$(34)"
  601. 7024 [153]"       (RETURNS "[199](34);"BABY"[199](34);")"
  602. 7025 [153]"   WHEN IT IS IMPOSSIBLE TO USE A KEY AS   'RETURN' USE:"
  603. 7026 [153]"   100 GET A$:IFA$=CHR$(13) GOTO 200"
  604. 7027 [153][163]8)K$
  605. 7028 [161] A$:[139]A$[178]""[167]7028
  606. 7029 [137]700
  607. 7030 [153]"LOAD":[153][163]16)"LEFT$":[153][163]3)"RETURNS LEFTMOST CHARACTER(S)";
  608. 7031 [153]" OF A      STRING."
  609. 7032 [153]"   B$=LEFT$(A$,2) RETURNS THE LEFTMOST 2   CHARACTERS OF STRING A$."
  610. 7033 [153]"   PRINT LEFT$("[199](34);"RUBBER"[199](34);",3)  PRINTS 'RUB'"
  611. 7034 [153][163]10)"10 A$=LEFT$("[199](34);"COMMODORE"[199](34);",5)"
  612. 7035 [153][163]10)"20 PRINT A$CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD(RETURNS 'COMMO' WHEN RUN)
  613. 7037 PRINTTAB(8)K$
  614. 7038 GETA$:IFA$=""THEN7038
  615. 7039 GOTO700
  616. 7040 PRINT"[147]":PRINTTAB(16)"LEN":PRINTTAB(3)"RETURNS THE LENGTH OF A STRING."
  617. 7041 PRINTTAB(3)"PRINT LEN("CHR$(34);"APPLE"CHR$(34);") DISPLAYS 5"
  618. 7042 PRINTTAB(3)"A=LEN("CHR$(34);"CAT"CHR$(34);"+"CHR$(34);"DOG"CHR$(34);
  619. 7043 PRINT"):PRINT A":PRINTTAB(9)"(RETURNS 6)
  620. 7047 [153][163]8)K$
  621. 7048 [161] A$:[139]A$[178]""[167]7048
  622. 7049 [137]700
  623. 7050 [153]"LOAD":[153][163]16)"MID$":[153][163]3)"RETURNS A SPECIFIED PORTION OF A"
  624. 7051 [153]"   STRING.":[153][163]3)"MID$("[199](34);"COMMODORE"[199](34);",3,2)";
  625. 7052 [153]"  (RETURNS 'MM')
  626. 7053 PRINTTAB(3)"MID$("CHR$(34);"COMMODORE"CHR$(34);",7)";
  627. 7054 PRINT"  (RETURNS 'ORE')
  628. 7057 [153][163]8)K$
  629. 7058 [161]A$:[139]A$[178]""[167]7058
  630. 7059 [137]700
  631. 7060 [153]"LOAD":[153][163]16)"RIGHT$":[153][163]3)"RETURNS THE RIGHTMOST CHARACTERS IN"
  632. 7061 [153]"   A STRING.":[153][163]3)"RIGHT$("[199](34);"BASIC"[199](34);",3)";
  633. 7062 [153]"  (RETURNS 'SIC')
  634. 7063 PRINTTAB(7)"10 WRD$="CHR$(34);"COMMODORE CLUB"CHR$(34)
  635. 7064 PRINTTAB(7)"20 PRINT RIGHT$(WRD$,4)":PRINTTAB(14)"
  636. 7065 [153][163]7)"(RETURNS 'CLUB' WHEN RUN)
  637. 7067 PRINTTAB(8)K$
  638. 7068 GET A$:IFA$=""THEN7068
  639. 7069 GOTO700
  640. 7070 PRINT"[147]":PRINTTAB(16)"STR$":PRINTTAB(3)"RETURNS THE STRING REPRESENTATION"
  641. 7071 PRINT"   OF THE NUMERIC ARGUMENT.":PRINTTAB(3)"EXAMPLE:  10 AB=45.3:";
  642. 7072 PRINT"A$=STR$(AB)":PRINTTAB(13)"20 PRINT AB,A$
  643. 7073 [153][163]13)"(RETURNS 45.3      45.3)"
  644. 7074 [153][163]3)"ANY NUMBER CONVERTED TO STRING VALUE    THE NUMBER SHOWN ";
  645. 7075 [153]"WILL BE PRECEDED AND   FOLLOWED BY A SPACE."
  646. 7077 [153][163]8)K$
  647. 7078 [161]A$:[139]A$[178]""[167]7078
  648. 7079 [137]700
  649. 7080 [153]"LOAD":[153][163]16)"TIME$":[153][163]3)"THE TI$ TIMER WORKS LIKE A CLOCK"
  650. 7081 [153]"   AFTER IT IS SET AND AS LONG AS THE      COMPUTER IS TURNED ON."
  651. 7082 [153]"   THE FORMAT FOR SETTING THE CLOCK IS     TI$="[199](34);"HHMMSS";
  652. 7083 [153][199](34);" WHERE HH IS HOUR BETWEEN   0 AND 23, MM IS THE MINUTES";
  653. 7084 [153]" BETWEEN 0   AND 59, SS IS THE SECONDS BETWEEN 0     AND 59."
  654. 7085 [153][163]3)"TIME CAN BE SET TO ANY STARTING POINT   AS A STOP WATCH."
  655. 7087 [153][163]8)K$
  656. 7088 [161]A$:[139]A$[178]""[167]7088
  657. 7089 [137]700
  658. 8010 [153]"LOAD":[153][163]16)"PEEK":[153][163]3)"THIS STATEMENT ALLOWS YOU TO"[199](34);
  659. 8011 [153]" PEEK"[199](34);"     INTO ANY OF THE 65536 MEMORY LOCA-      TIONS";
  660. 8012 [153]" TO SEE WHAT IS STORED IN ANY    OF THESE LOCATIONS."
  661. 8013 [153][163]3)"THE NUMBER STORED IN ANY MEMORY LOC-    ATION MAY BE ";
  662. 8014 [153]"ASSIGNED TO A VARIABLE."
  663. 8017 [153][163]8)K$
  664. 8018 [161]A$:[139]A$[178]""[167]8018
  665. 8019 [137]800
  666. 8020 [153]"LOAD":[153][163]16)"POKE":[153][163]3)"THIS STATEMENT WRITES DATA INTO A"
  667. 8021 [153]"   MEMORY LOCATION. POKE 53280,A WRITES    THE VALUE OF A INTO ";
  668. 8022 [153]"MEMORY LOCATION     53280. THE VALUE OF A CAN BE ANY "
  669. 8023 [153]"   EXPRESSION WHICH CAN BE REDUCED TO AN   INTEGER VALUE OF 0 TO 255. ";
  670. 8024 [153]"IF A IS A    FLOATING POINT VARIABLE, IT IS AUTO-    MATICALLY ";
  671. 8025 [153]"CONVERTED TO AN INTEGER."
  672. 8026 [153][163]3)"YOU CAN POKE ONLY INTO READ/WRITE       MEMORY."
  673. 8027 [153][163]8)K$
  674. 8028 [161]A$:[139]A$[178]""[167]8028
  675. 8029 [137]800
  676. 8030 [153]"LOAD":[153][163]16)"SYS":[153][163]3)"TO TRANSFER CONTROL TO MACHINE ";
  677. 8031 [153]"LANG-    UAGE USE SYS(STARTING ADDRESS) WHERE    STARTING ADDRESS ";
  678. 8032 [153]"MUST BE 0 TO 65535.":[153][163]3)"SYS CAN BE USED IN DIRECT OR PROGRAM"
  679. 8033 [153]"   MODE. WHEN SYS IS USED, ML SECTION      MUST BE ENDED WITH RTS ";
  680. 8034 [153]"INSTRUCTION SO   BASIC EXECUTION WILL RESUME WITH        STATEMENT";
  681. 8035 [153]" FOLLOWING SYS COMMAND."
  682. 8037 [153][163]8)K$
  683. 8038 [161]A$:[139]A$[178]""[167]8038
  684. 8039 [137]800
  685. 8040 [153]"LOAD":[153][163]16)"USR":[153][163]3)"MEMORY LOC. 785-786 ARE POKED TO SET"
  686. 8041 [153]"   UP STARTING ADDRESS FOR A MACHINE       LANGUAGE SUB ROUTINE."
  687. 8042 [153]"   THE USR(NUM.ARG.) FUNCTION JUMPS TO     ML SUBROUTINE AND THE ";
  688. 8043 [153]"VALUE OF THE      ARGUMENT IS STORED IN THE FLOATING PT   ACCUMULATOR";
  689. 8044 [153]" STARTING AT LOCATION 97     TO BE ACCESSED BY THE ASSEMBLER CODE."
  690. 8045 [153]"   THE RESULT OF THE USR FUNCTION IS THE   VALUE THAT ENDS UP IN ";
  691. 8046 [153]"LOCATION 97       WHEN SUBROUTINE RETURNS TO BASIC."
  692. 8047 [153][163]8)K$
  693. 8048 [161]A$:[139]A$[178]""[167]8048
  694. 8049 [137]800
  695. 9010 [153]"LOAD":[153][163]18)"REM":[153][163]3)"REM STATEMENTS HELP TO EXPLAIN PROG-"
  696. 9011 [153]"   RAMS WHEN LISTED. REM STATEMENTS AND    ALL THAT FOLLOW ON THAT ";
  697. 9012 [153]"LINE ARE IG-    NORED BY COMPUTER."
  698. 9013 [153]"   A GOTO OR GOSUB CAN SEND PROGRAM TO     REM STATEMENT AND ";
  699. 9014 [153]"EXECUTION WILL CON-   TINUE AT NEXT HIGHER PROGRAM LINE"
  700. 9015 [153]"   WITH STATEMENT THAT CAN BE EXECUTED."
  701. 9017 [153][163]8)K$
  702. 9018 [161]A$:[139]A$[178]""[167]9018
  703. 9019 [137]900
  704. 9020 [153]"LOAD":[153][163]18)"WAIT":[153][163]3)"THIS STATEMENT IS SELDOM USED. IT"
  705. 9021 [153]"   STOPS THE PROGRAM UNTIL A CERTAIN       MEMORY LOCATION'S BITS ";
  706. 9022 [153]"CHANGE IN A      SPECIFIC WAY.":[153][163]3)"WAIT IS USED ";
  707. 9023 [153]"FOR CERTAIN I/O OPER-      ATIONS AND ALMOST NOTHING ELSE."
  708. 9024 [153][163]3)"IT IS A TOOL TO BE USED BY EXPER-       IENCED PROGRAMMERS ONLY."
  709. 9027 [153][163]8)K$
  710. 9028 [161]A$:[139]A$[178]""[167]9028
  711. 9029 [137]900
  712. 10000 [128]
  713.